import { NgModule } from '@angular/core';
// 导入 Angular 的 NgModule 装饰器，用于定义模块。

import { RouterModule, Routes } from '@angular/router';
// 从 @angular/router 导入 RouterModule 和 Routes，用于配置路由。

import { UserLoginComponent } from './usersystem/userlogin/user-login.component';
// 导入 UserLoginComponent 组件。

import { UsermanagerComponent } from './usersystem/usermanager/usermanager.component';
// 导入 UsermanagerComponent 组件。

import { UserListComponent } from './usersystem/usermanager/userlist/user-list.component';
// 导入 UserListComponent 组件。

import { UserDetailComponent } from './usersystem/usermanager/userdetail/user-detail.component';
// 导入 UserDetailComponent 组件。

// import { AuthGuardService } from './guard/auth.guard.service';
import { PermissionsGuard } from './guard/permissions.guard.guard';
// 导入 AuthGuardService 服务，用于路由守卫。

const routes: Routes = [
  { path: '', component: UserLoginComponent },
  // 定义默认路径（空字符串）指向 UserLoginComponent 组件。

  { path: 'login', component: UserLoginComponent},
  // 定义 '/login' 路径也指向 UserLoginComponent 组件。

  {
    path: 'usermanager', component: UsermanagerComponent,
    // 定义 '/usermanager' 路径指向 UsermanagerComponent 组件。

    children: [
      { path: '', redirectTo: 'userList', pathMatch: 'full' },
      // 定义 '/usermanager' 下的空路径重定向到 'userList'。

      { path: 'userList', component: UserListComponent },
      // 定义 '/usermanager/userList' 路径指向 UserListComponent 组件。

      { path: 'userdetail/:id/:flag', component: UserDetailComponent }
      // 定义 '/usermanager/userdetail/:id/:flag' 路径指向 UserDetailComponent 组件，
      // 其中 :id 和 :flag 是动态路由参数。
    ], canActivate:  [PermissionsGuard] // 使用 AuthGuardService 中的 canActivate 函数
    // 为 'usermanager' 路由添加路由守卫，确保只有经过认证的用户才能访问。
  },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  // 导入 RouterModule，并使用 forRoot 方法配置全局路由。

  exports: [RouterModule]
  // 导出 RouterModule，使得其他模块可以通过导入 AppModule 来使用路由功能。
})
export class AppRoutingModule { }
// 定义 AppRoutingModule 模块。
